import socket

# 创建一个UDP的socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 客户端的socket不需要bind，所以由操作系统分配一个随机的端口号

while True:
    # 发送消息给服务端
    send_msg = input('客户端>>')

    if send_msg == 'quit':  # 如果客户端输入quit表示退出聊天
        # 把 quit 发送给服务器，然后客户端退出循环
        # sendto必须要制定目标地址和目标端口号（服务器）
        client_socket.sendto(send_msg.encode('utf8'), ('172.1.128.64', 6666))
        break

    # sendto必须要制定目标地址和目标端口号（服务器）
    client_socket.sendto(send_msg.encode('utf8'), ('172.1.128.64', 6666))

    # 接收服务器发过来的数据
    msg, addr = client_socket.recvfrom(1024)
    print(f'来自服务端的IP:{addr[0]},端口号：{addr[1]}的消息：{msg.decode("utf8")}')

# 关闭
client_socket.close()
